perm filename TSTWRD.SAI[PUZ,HPM] blob sn#152742 filedate 1975-04-01 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "TSTWRD"
C00003 00003	         BEGIN
C00006 ENDMK
C⊗;
BEGIN "TSTWRD"
REQUIRE "DICWRD.SAI[PUZ,HPM]" SOURCE_FILE;

   BEGIN
   INTEGER ARRAY FOREST[0:1000];
   INTEGER TREE,DEPTH; STRING WRD;
   INIWRD(100,FOREST[0]); TREE←0;

   OUTSTR("TREE DEPTH:"); DEPTH←CVD(INCHWL);

   WHILE TRUE DO
      BEGIN
      DO
         BEGIN
         OUTSTR('15&'12&"INSERT STRING:");
         WRD←INCHWL;
         END 
      UNTIL LENGTH(WRD)=DEPTH;
      IF INSWRD(TREE,WRD)=0 THEN OUTSTR(" ALL OUT ");

         BEGIN
         INTEGER I,J,K,L;
         STRING PLUMB;
         PLUMB←"";

         DO
            BEGIN
            BOOLEAN WINNAGE;

            comment  this builds;
            WHILE LENGTH(PLUMB)<DEPTH DO
               BEGIN
               PLUMB←PLUMB&"A";
               WHILE FINWRD(TREE,PLUMB,DEPTH)=0 DO
                  PLUMB←PLUMB[1 TO ∞-1]&(PLUMB[∞ TO ∞]+1);
               END;

            OUTSTR(PLUMB&" ");

            comment  this bumps;
            WINNAGE←FALSE;
            WHILE LENGTH(PLUMB)>0 ∧ ¬WINNAGE DO
            IF PLUMB[∞ TO ∞]="Z" THEN PLUMB←PLUMB[1 TO ∞-1]
            ELSE
               BEGIN
               PLUMB←PLUMB[1 TO ∞-1]&(PLUMB[∞ TO ∞]+1);
               IF FINWRD(TREE,PLUMB,DEPTH)≠0 THEN WINNAGE←TRUE;
               END;

            END
         UNTIL LENGTH(PLUMB)=0;
         END;

      END;
   END;
END;